\section{Brzozowski's algorithm}
Brzozowski’s algorithm is given by Brzozowski [1] is minimization automata algorithm. This algorithm minimize automata by different way with the iterative algorithm (by refinement and by fusion). And its input can be a finite automata (deterministic or non-deterministic). Although the complexity of Brzozowski’s algorithm is exponential but this is a simple, easy algorithm to implement and quite efficient.\\
To minimize a finite automata, we follow this way [2]:
\begin{itemize}
	\item Let A=(Q,I,F,E) a finite deterministic automata
	\item Let $A^{\sim}$ be the deterministic trim automata obtained by determinizing and trimming the reversal $A^{R}$
	\item Then  $(A^{\sim})^{\sim}$ is the minimal automata of A\\
	$\rightarrow$ The minimal automata: trim(det(rev(trim(det(rev(A))))))\\
\end{itemize}
\begin{figure}[h!]
	\begin{center}
		\includegraphics[scale=0.9]{images/Brzozowski}\\
	\end{center}
	\caption{Brzozowski’s algorithm}
\end{figure}
\textbf{Example}\\
Let automata A is the input of algorithm. We will find the minimal automata for it.
\begin{figure}[h!]	
	\centering
	\includegraphics[scale=0.9]{images/Brzozowski_auto}\\
	\caption{Automata A}
\end{figure}\\\\
\\Firstly, we get reversal automata by reversing every transition of A.
\begin{figure}[h!]
	\centering
		\includegraphics[scale=0.9]{images/Brzozowski_auto_R}
		\caption{Automata $A^R$}
\end{figure}
\\After that, we get $A^{\sim}$ by determinizing and trimming $A^{R}$. The result will be following below.
\begin{figure}[h!]
	\centering
	\includegraphics[scale=0.9]{images/Brzozowski_auto_A}
	\caption{Automata $A^{\sim}$}
\end{figure}\\
After that, do it one more time, we will have the minimal automata.
\begin{figure}[h!]
	\centering
		\includegraphics[scale=0.9]{images/minimal}
		\caption{Minimal Automata}
\end{figure}
